/**************************************************************
  > File Name: sighcld.c
  > Author: LuoLiang
  > Mail: 1204553475@qq.com 
  > Created Time: 2022年02月23日 星期三 05时57分02秒
 **************************************************************/

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <signal.h>

void handler(int s)
{
	int status;
	wait(&status);
	if (WIFEXITED(status))
	{
		printf("child is normel over!\n");
	}
	else if (WIFSIGNALED(status))
	{
		printf("child is anormel over!\n");
	}
}

int main(int argc, char **argv)
{
	signal(SIGCHLD, handler);
	
	pid_t pid;

	pid = fork();
	if (pid < 0)
	{
		perror("fork()");
		exit(1);
	}
	if (pid == 0)
	{
		//execlp("mplayer", "mplayer", "");	
		printf("child is run!\n");
		usleep(1000000LL);
		exit(0);
	}
	
	getchar();
    exit(0);
}
